import { cloneDeep } from "lodash-es";
import type { PiniaPluginContext } from "pinia";

/**
 * setup语法的重置状态插件
 * @param context
 * @description 请将用setup语法的状态id写入到setupSyntaxIds
 */
export function resetSetupStore(context: PiniaPluginContext) {
	const setupSyntaxIds = ["setup-store"];

	if (setupSyntaxIds.includes(context.store.$id)) {
		const { $state } = context.store;

		const defaultStore = cloneDeep($state);

		context.store.$reset = () => {
			context.store.$patch(defaultStore);
		};
	}
}
